package com.zs.zcerp.entrance.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zs.zcerp.entrance.entity.EpMain;

import java.util.List;

/**
 * 员工接口, 操作数据库的员工表
 */
public interface IEpMainService extends IService<EpMain> {

    /**
     * 查询所有在职员工
     * @return
     */
    List<EpMain> listEpMains();



    /**
     * 查询该组织下所有协理以下级别的在职员工
     * @param orgId 组织编码
     * @return
     */
    List<EpMain> listEpMainsAttendance(Integer orgId);

    /**
     * 查询最近一段时间更新的员工
     * @return
     */
    List<EpMain> listEpMainsLately();

    /**
     * 分页查询最近一段时间更新的员工
     */
    IPage<EpMain> pageListEpMainsLately(Page page);

    /**
     * 根据员工emp_no查询员工信息
     * @param empNo
     * @return
     */
    EpMain findByEmp_No(String empNo);
    /**
     * 根据员工工号查询员工信息
     * @param empNo
     * @return
     */
    EpMain findByEmpno(String empNo);

    /**
     * 根据员工工号查询员工信息, 在职
     */
    EpMain findByEmpnoActive(String empNo);

    /**
     * 根据员工工号更新员工信息
     * @param epMain
     * @return
     */
    int updateEmp(EpMain epMain);

    /**
     * 查询所有离职员工
     * @return
     */
    List<EpMain> ListOutEmpAll();

    /**
     * 查询所有离职日期在今天之前的员工
     * @return
     */
    List<EpMain> ListOutEmpAllNow();

    /**
     * 查询所有员工
     * @return
     */
    List<EpMain> listAllEmp();

    /**
     * 查询所有作废员工
     * @return
     */
    List<EpMain> listAllCancellationEmp();

    /**
     * 根据工号与组织id查询员工信息
     * @param empNo  工号
     * @param orgId  组织
     * @return
     */
    EpMain findByEmpnoAndOrgid(String empNo, Integer orgId);


}
